package com.raos.pagehelper.utils;

import lombok.Data;

/**
 * 页面查询参数封装类
 *
 * @author raos
 * @email 991207823@qq.com
 * @date 2021/09/04 22:31
 */
@Data
public class PageQuery {

    /**
     * 分页默认大小为 10
     */
    public static final int DEFAULT_PAGE_SIZE = 10;

    /**
     * 分页默认获取第一页 0
     */
    public static final int DEFAULT_PAGE_NUMBER = 1;


    /**
     * 页码，1表示第一页
     */
    private int page;

    /**
     * 每页结果数
     */
    private int limit;

    /**
     * 从多少行开始取数据
     */
    private long offset;

    /**
     * 构造，默认第1页，每页{@value #DEFAULT_PAGE_SIZE} 条
     */
    public PageQuery() {
        this(DEFAULT_PAGE_NUMBER, DEFAULT_PAGE_SIZE);
    }

    /**
     * 构造
     *
     * @param page  页码，1表示第一页
     * @param limit 每页结果数
     */
    public PageQuery(int page, int limit) {
        this.page = Math.max(page, 1);
        this.limit = limit <= 0 ? DEFAULT_PAGE_SIZE : limit;
        this.offset = (this.page - 1) * this.limit;
    }

}
